
package DTO.song;

import java.math.BigInteger;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.datatype.XMLGregorianCalendar;


/**
 * <p>Java class for Song complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="Song">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="SongID" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger"/>
 *         &lt;element name="isMV" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
 *         &lt;element name="SongTitle" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="SongViews" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger"/>
 *         &lt;element name="SongDescription" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="SongSRC" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="LikeNumber" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger"/>
 *         &lt;element name="Lyrics" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="Artists" type="{http://xml.netbeans.org/schema/song}Artists"/>
 *         &lt;element name="Genre" type="{http://xml.netbeans.org/schema/song}Genre"/>
 *         &lt;element name="Likers" type="{http://xml.netbeans.org/schema/song}Likers"/>
 *         &lt;element name="SongDateCreated" type="{http://www.w3.org/2001/XMLSchema}date"/>
 *         &lt;element name="AlbumID" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger"/>
 *         &lt;element name="AlbumTitle" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="TrackNumber" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Song", propOrder = {
    "songID",
    "isMV",
    "songTitle",
    "songViews",
    "songDescription",
    "songSRC",
    "likeNumber",
    "lyrics",
    "artists",
    "genre",
    "likers",
    "songDateCreated",
    "albumID",
    "albumTitle",
    "trackNumber"
})
public class Song {

    @XmlElement(name = "SongID", required = true)
    @XmlSchemaType(name = "nonNegativeInteger")
    protected BigInteger songID;
    @XmlElement(defaultValue = "false")
    protected boolean isMV;
    @XmlElement(name = "SongTitle", required = true)
    protected String songTitle;
    @XmlElement(name = "SongViews", required = true)
    @XmlSchemaType(name = "nonNegativeInteger")
    protected BigInteger songViews;
    @XmlElement(name = "SongDescription", required = true, nillable = true)
    protected String songDescription;
    @XmlElement(name = "SongSRC", required = true, nillable = true)
    protected String songSRC;
    @XmlElement(name = "LikeNumber", required = true)
    @XmlSchemaType(name = "nonNegativeInteger")
    protected BigInteger likeNumber;
    @XmlElement(name = "Lyrics", required = true, nillable = true)
    protected String lyrics;
    @XmlElement(name = "Artists", required = true)
    protected Artists artists;
    @XmlElement(name = "Genre", required = true)
    protected Genre genre;
    @XmlElement(name = "Likers", required = true)
    protected Likers likers;
    @XmlElement(name = "SongDateCreated", required = true)
    @XmlSchemaType(name = "date")
    protected XMLGregorianCalendar songDateCreated;
    @XmlElement(name = "AlbumID", required = true, nillable = true)
    @XmlSchemaType(name = "nonNegativeInteger")
    protected BigInteger albumID;
    @XmlElement(name = "AlbumTitle", required = true, nillable = true)
    protected String albumTitle;
    @XmlElement(name = "TrackNumber", required = true, nillable = true)
    @XmlSchemaType(name = "nonNegativeInteger")
    protected BigInteger trackNumber;

    /**
     * Gets the value of the songID property.
     * 
     * @return
     *     possible object is
     *     {@link BigInteger }
     *     
     */
    public BigInteger getSongID() {
        return songID;
    }

    /**
     * Sets the value of the songID property.
     * 
     * @param value
     *     allowed object is
     *     {@link BigInteger }
     *     
     */
    public void setSongID(BigInteger value) {
        this.songID = value;
    }

    /**
     * Gets the value of the isMV property.
     * 
     */
    public boolean isIsMV() {
        return isMV;
    }

    /**
     * Sets the value of the isMV property.
     * 
     */
    public void setIsMV(boolean value) {
        this.isMV = value;
    }

    /**
     * Gets the value of the songTitle property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getSongTitle() {
        return songTitle;
    }

    /**
     * Sets the value of the songTitle property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setSongTitle(String value) {
        this.songTitle = value;
    }

    /**
     * Gets the value of the songViews property.
     * 
     * @return
     *     possible object is
     *     {@link BigInteger }
     *     
     */
    public BigInteger getSongViews() {
        return songViews;
    }

    /**
     * Sets the value of the songViews property.
     * 
     * @param value
     *     allowed object is
     *     {@link BigInteger }
     *     
     */
    public void setSongViews(BigInteger value) {
        this.songViews = value;
    }

    /**
     * Gets the value of the songDescription property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getSongDescription() {
        return songDescription;
    }

    /**
     * Sets the value of the songDescription property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setSongDescription(String value) {
        this.songDescription = value;
    }

    /**
     * Gets the value of the songSRC property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getSongSRC() {
        return songSRC;
    }

    /**
     * Sets the value of the songSRC property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setSongSRC(String value) {
        this.songSRC = value;
    }

    /**
     * Gets the value of the likeNumber property.
     * 
     * @return
     *     possible object is
     *     {@link BigInteger }
     *     
     */
    public BigInteger getLikeNumber() {
        return likeNumber;
    }

    /**
     * Sets the value of the likeNumber property.
     * 
     * @param value
     *     allowed object is
     *     {@link BigInteger }
     *     
     */
    public void setLikeNumber(BigInteger value) {
        this.likeNumber = value;
    }

    /**
     * Gets the value of the lyrics property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getLyrics() {
        return lyrics;
    }

    /**
     * Sets the value of the lyrics property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setLyrics(String value) {
        this.lyrics = value;
    }

    /**
     * Gets the value of the artists property.
     * 
     * @return
     *     possible object is
     *     {@link Artists }
     *     
     */
    public Artists getArtists() {
        return artists;
    }

    /**
     * Sets the value of the artists property.
     * 
     * @param value
     *     allowed object is
     *     {@link Artists }
     *     
     */
    public void setArtists(Artists value) {
        this.artists = value;
    }

    /**
     * Gets the value of the genre property.
     * 
     * @return
     *     possible object is
     *     {@link Genre }
     *     
     */
    public Genre getGenre() {
        return genre;
    }

    /**
     * Sets the value of the genre property.
     * 
     * @param value
     *     allowed object is
     *     {@link Genre }
     *     
     */
    public void setGenre(Genre value) {
        this.genre = value;
    }

    /**
     * Gets the value of the likers property.
     * 
     * @return
     *     possible object is
     *     {@link Likers }
     *     
     */
    public Likers getLikers() {
        return likers;
    }

    /**
     * Sets the value of the likers property.
     * 
     * @param value
     *     allowed object is
     *     {@link Likers }
     *     
     */
    public void setLikers(Likers value) {
        this.likers = value;
    }

    /**
     * Gets the value of the songDateCreated property.
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getSongDateCreated() {
        return songDateCreated;
    }

    /**
     * Sets the value of the songDateCreated property.
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setSongDateCreated(XMLGregorianCalendar value) {
        this.songDateCreated = value;
    }

    /**
     * Gets the value of the albumID property.
     * 
     * @return
     *     possible object is
     *     {@link BigInteger }
     *     
     */
    public BigInteger getAlbumID() {
        return albumID;
    }

    /**
     * Sets the value of the albumID property.
     * 
     * @param value
     *     allowed object is
     *     {@link BigInteger }
     *     
     */
    public void setAlbumID(BigInteger value) {
        this.albumID = value;
    }

    /**
     * Gets the value of the albumTitle property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getAlbumTitle() {
        return albumTitle;
    }

    /**
     * Sets the value of the albumTitle property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setAlbumTitle(String value) {
        this.albumTitle = value;
    }

    /**
     * Gets the value of the trackNumber property.
     * 
     * @return
     *     possible object is
     *     {@link BigInteger }
     *     
     */
    public BigInteger getTrackNumber() {
        return trackNumber;
    }

    /**
     * Sets the value of the trackNumber property.
     * 
     * @param value
     *     allowed object is
     *     {@link BigInteger }
     *     
     */
    public void setTrackNumber(BigInteger value) {
        this.trackNumber = value;
    }

}
